home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1997 January: Mac OS SDK / Dev.CD Jan 97 SDK2.toast / Development Kits (Disc 2) / OpenDoc Development Framework / ODFDev / ODF / Framewrk / FWPart / FWKind.h < prev    next >
Encoding:
Text File  |  1996-09-17  |  3.7 KB  |  103 lines  |  [TEXT/MPS ]

  1. //========================================================================================
  2. //
  3. //    File:                FWKind.h
  4. //    Release Version:    $ ODF 2 $
  5. //
  6. //    Copyright:            (c) 1993 - 1996 by Apple Computer, Inc., all rights reserved.
  7. //
  8. //========================================================================================
  9.  
  10. #ifndef FWKIND_H
  11. #define FWKIND_H
  12.  
  13. #ifndef FWPRTDEF_H
  14. #include "FWPrtDef.h"
  15. #endif
  16.  
  17. //========================================================================================
  18. //    Forward Declarations
  19. //========================================================================================
  20.  
  21. class FW_CPart;
  22. struct Environment;
  23.  
  24.  
  25. //========================================================================================
  26. //    class FW_CKind
  27. //========================================================================================
  28.  
  29. class FW_CKind
  30. {
  31.     friend class FW_CPart;
  32.     
  33. //----------------------------------------------------------------------------------------
  34. //    Initialization/Destruction
  35. //
  36. private:
  37.     FW_CKind(Environment* ev, FW_CPart* part, ODType kind, FW_StorageKinds storageKind, FW_ImportExport importExport);
  38.     ~FW_CKind();
  39.  
  40. //----------------------------------------------------------------------------------------
  41. //    New API
  42. //
  43. public:    
  44.     ODType                GetType(Environment*) const
  45.                             {return fType;}
  46.     
  47.     void                ChangeStorageKind(Environment* ev, FW_StorageKinds storageKind);
  48.     void                ChangeImportExport(Environment* ev, FW_ImportExport importExport);
  49.     
  50.     FW_StorageKinds        GetStorageKind(Environment*) const
  51.                             {return fStorageKind;}
  52.     FW_ImportExport        GetImportExport(Environment*) const
  53.                             {return fImportExport;}
  54.  
  55.     FW_Boolean            IsExportEnabled(Environment*) const
  56.                             {return (fImportExport & FW_kExportEnabled) != 0;}    
  57.     FW_Boolean            ExportSupported(Environment*, FW_StorageKinds storageKind) const
  58.                             {return (fStorageKind & storageKind) && (fImportExport & (FW_kExportEnabled | FW_kExportDisabled));}
  59.     FW_Boolean            ToBeExported(Environment* ev, FW_StorageKinds storageKind) const
  60.                             {return ExportSupported(ev, storageKind) && IsExportEnabled(ev);}
  61.     
  62.     FW_Boolean            ImportSupported(Environment*, FW_StorageKinds storageKind) const
  63.                             {return (fStorageKind & storageKind) && (fImportExport & FW_kImport);}
  64.     
  65.     FW_Boolean            IsDirty(Environment*, FW_StorageKinds theStorage) const
  66.                             {return (fDirty & theStorage) != 0;}
  67.  
  68.     FW_Boolean            IsPreferredKind(Environment*) const
  69.                             {return fIsPreferredKind;}
  70.     FW_Boolean            IsPartKind(Environment*) const
  71.                             {return fIsPartKind;}
  72.     
  73.     FW_Boolean            IsEqual(Environment* ev, ODType kind) const;
  74.     FW_Boolean            IsEqual(Environment* ev, ODPlatformType platformType, ODPlatformTypeSpace typeSpace) const;
  75.     FW_Boolean            IsEqual(Environment* ev, FW_CKind* kind) const
  76.                             {return IsEqual(ev, kind->fType);}
  77.     
  78. //----------------------------------------------------------------------------------------
  79. //    Internal API
  80. //
  81. public:
  82.     void                PrivSetDirty(Environment* ev, FW_Boolean state, FW_StorageKinds theStorage);
  83.     
  84. private:
  85.     void                PrivSetAsPreferredKind(Environment*, FW_Boolean state)
  86.                             {fIsPreferredKind = state;}
  87.     void                PrivSetAsPartKind(Environment*)
  88.                             {fIsPartKind = TRUE;}
  89.     
  90. //----------------------------------------------------------------------------------------
  91. //    Data members
  92. //
  93. private:
  94.     FW_CPart*            fPart;                // Back pointer to the part
  95.     ODType                fType;                // Kind
  96.     FW_StorageKinds        fStorageKind;        // Supported storage
  97.     FW_ImportExport        fImportExport;        // Supported for Import and/or export
  98.     FW_Boolean            fIsPartKind;        // It is the part kind
  99.     FW_Boolean            fIsPreferredKind;    // It is the preferred kind
  100.     FW_StorageKinds        fDirty;                // This value needs to be externalize for a specific storage unit
  101. };
  102.  
  103. #endif